bitkeeper revision 1.1159.1.108 (412e0764N-PIybRvZOXrgV9F-pj5nQ)
authorkaf24@labyrinth.cl.cam.ac.uk <kaf24@labyrinth.cl.cam.ac.uk>
Thu, 26 Aug 2004 15:53:08 +0000 (15:53 +0000)
committerkaf24@labyrinth.cl.cam.ac.uk <kaf24@labyrinth.cl.cam.ac.uk>
Thu, 26 Aug 2004 15:53:08 +0000 (15:53 +0000)
Add a 'domid' field to device-interface status messages, informing
the front end of the identity of the backend to which it is connecting.

tools/python/xen/lowlevel/xu/xu.c
tools/python/xen/xend/server/blkif.py
tools/python/xen/xend/server/netif.py
xen/include/hypervisor-ifs/io/domain_controller.h

index 344cb8cc4b7022ee414ec3f6a8afd1e323383da5..c1c171383e4b3fa02edcc1c062fb35c02c4d8edf 100644 (file)
@@ -547,6 +547,7 @@ static PyObject *xu_message_new(PyObject *self, PyObject *args)
         P2C(blkif_fe_interface_status_changed_t, handle, u32);
         P2C(blkif_fe_interface_status_changed_t, status, u32);
         P2C(blkif_fe_interface_status_changed_t, evtchn, u16);
+        P2C(blkif_fe_interface_status_changed_t, domid,  u16);
         break;
     case TYPE(CMSG_BLKIF_BE, CMSG_BLKIF_BE_CREATE):
         P2C(blkif_be_create_t, domid,        u32);
@@ -594,6 +595,7 @@ static PyObject *xu_message_new(PyObject *self, PyObject *args)
         P2C(netif_fe_interface_status_changed_t, handle, u32);
         P2C(netif_fe_interface_status_changed_t, status, u32);
         P2C(netif_fe_interface_status_changed_t, evtchn, u16);
+        P2C(netif_fe_interface_status_changed_t, domid,  u16);
         P2C(netif_fe_interface_status_changed_t, mac[0], u8);
         P2C(netif_fe_interface_status_changed_t, mac[1], u8);
         P2C(netif_fe_interface_status_changed_t, mac[2], u8);
index 00f19a805da44718f09857696b2cd91d93623837..0a021b17772336da254d2af7007539213a11a756 100755 (executable)
@@ -121,6 +121,7 @@ class BlkifBackendController(controller.BackendController):
         msg = packMsg('blkif_fe_interface_status_changed_t',
                       { 'handle' : self.handle,
                         'status' : BLKIF_INTERFACE_STATUS_CONNECTED,
+                        'domid'  : 0, ## FIXME: should be domid of backend
                         'evtchn' : self.evtchn['port2'] })
         self.controller.writeRequest(msg, response=response)
         
@@ -382,6 +383,7 @@ class BlkifController(controller.SplitController):
         msg = packMsg('blkif_fe_interface_status_changed_t',
                       { 'handle' : 0,
                         'status' : BLKIF_INTERFACE_STATUS_DISCONNECTED,
+                        'domid'  : 0, ## FIXME: should be domid of backend
                         'evtchn' : 0 })
         self.writeRequest(msg)
 
index 864f6ebd2dfa8d42ef47d976d3c0db3d5ad98df2..1ba21698781ff9b2b24a53ae28786b156f37566a 100755 (executable)
@@ -234,6 +234,7 @@ class NetDev(controller.SplitDev):
                       { 'handle' : self.vif,
                         'status' : NETIF_INTERFACE_STATUS_CONNECTED,
                         'evtchn' : self.evtchn['port2'],
+                        'domid'  : 0, ## FIXME: should be domid of backend
                         'mac'    : self.mac })
         self.controller.writeRequest(msg)
 
@@ -242,6 +243,7 @@ class NetDev(controller.SplitDev):
                       { 'handle' : self.vif,
                         'status' : NETIF_INTERFACE_STATUS_DISCONNECTED,
                         'evtchn' : 0,
+                        'domid'  : 0, ## FIXME: should be domid of backend
                         'mac'    : self.mac })
         self.controller.writeRequest(msg)
         
index 37dbd34db4e373868a26b289ee39003c23ec7e8c..a7f3e4ee08978bccfa9e101fde67fe98296e8782 100644 (file)
@@ -96,7 +96,8 @@ typedef struct {
     u32 handle; /*  0 */
     u32 status; /*  4 */
     u16 evtchn; /*  8: (only if status == BLKIF_INTERFACE_STATUS_CONNECTED). */
-} PACKED blkif_fe_interface_status_changed_t; /* 10 bytes */
+    domid_t domid; /* 10: status != BLKIF_INTERFACE_STATUS_DESTROYED */
+} PACKED blkif_fe_interface_status_changed_t; /* 12 bytes */
 
 /*
  * CMSG_BLKIF_FE_DRIVER_STATUS_CHANGED:
@@ -347,7 +348,8 @@ typedef struct {
     u32        status; /*  4 */
     u16        evtchn; /*  8: status == NETIF_INTERFACE_STATUS_CONNECTED */
     u8         mac[6]; /* 10: status == NETIF_INTERFACE_STATUS_CONNECTED */
-} PACKED netif_fe_interface_status_changed_t; /* 16 bytes */
+    domid_t    domid;  /* 16: status != NETIF_INTERFACE_STATUS_DESTROYED */
+} PACKED netif_fe_interface_status_changed_t; /* 18 bytes */
 
 /*
  * CMSG_NETIF_FE_DRIVER_STATUS_CHANGED: